1. Field of the Invention
The present invention relates generally to computer processing of software applications, and more particularly to optimizing the processing speed of software applications.
2. Related Art
Within the computer industry, it is common for technological advances to cause processor chip speeds to increase at a fast pacexe2x80x94consider, for example, the observation of Moore""s Law. The development of software technology, however, has not kept pace with processor speed increases. Thus, when speaking of microprocessors within personal computers, for example, there currently exist many software application technologies that cannot take advantage of the increases in performance of the processor chips. The above-stated disparity does not manifest itself as a problem in general (i.e., computer) system performance, but rather application performance. That is, today""s advanced processor chips are executing instructions at a faster pace, yet this increase in speed is not being passed on to software applications.
The above-mentioned problem demonstrates itself in two ways. First, the actual operation speed of a particular software application, even when executed on a faster processor, does not improve. This is due to the increased complexity of today""s software applications and the fact that operating systems are now handling more processes less efficiently than before. Second, there has been a lack of technological advances in software applications that require low latency operations. For example, the Intel(copyright) Pentium(copyright) Pro processor can do more multiple operations faster than many currently-available graphics chips. These graphics chips, however, are currently required to achieve good graphics performance. This is because the increased performance of the Intel(copyright) Pentium(copyright) processors and the like are not passed on to the software applications that require it. These processor cycles are unnecessarily wasted.
While there currently exist many performance enhancement products, such as PerfMan(copyright) available from Information Systems Manager, Inc. of Bethlehem, Pa, and Wintune(trademark) available from the Microsoft Corporation of Redmond, Wash, these do not address the above-identified needs. Many performance management products simply allow users to change the priority or CPU time slice of an application in a brute-force manner without any intelligence. Typical PC-users, however, do not comprehend such concepts. Further, with the complexity of operating systems increasing, most software applications are written to include a large amount of system calls to the operating system (OS). Thus, increasing an application""s priority takes away CPU cycles from the OS and the end result is a degradation of performancexe2x80x94not an enhancement. Also, many processes are slowed while waiting for input/output (I/O). Thus, simply increasing CPU time slices does not help efficiency (i.e., it does not address the problem).
Therefore, what is needed is a system, method, and computer program product for intelligent memory to accelerate processes that allows software applications, both stand-alone and those distributed in a client-server model, to fully utilize the speed of modem (and future) processor chips. The intelligent memory would function in a computing environment where the OS and processors are fixed (i.e., where optimization is not under the control of the PC end-user). Such a system, method, and computer program product would enable software applications to operate at maximum speeds through the acceleration of, for example, context switching and I/O interfacing.
The present invention is directed towards a system, method, and computer program product for intelligent memory to accelerate processes that meets the above-identified needs and allows software applications to fully utilize the speed of modern processor chips.
The system includes a graphical user interface, accessible via a users computer, for allowing the user to select applications executing on the computer to accelerate, an application database that contains profile information on the applications, and a system database that contains configuration information about the computer""s configuration. The system also includes an intelligent memory, attached to the computer""s system bus as a separate chip or to the processor itself, includes control logic that uses the application database and the system database to determine a set of modifications to the computer, application, and/or operating system. The intelligent memory also includes a memory which stores the executing applications and allows the control logic to implement the set of modifications during execution. The system thereby allows applications to more fully utilize the power (i.e., processing capabilities) of the processor within the computer.
One advantage of the present invention is that it provides a reduced-cost solution for Windows 95/98(trademark) or NT(trademark)/Intel(copyright) systems (and the like) currently requiring special purpose processors in addition to a central processor.
Another advantage of the present invention is that it allows special purpose computing systems to be displaced by Windows 95/98(trademark) orNT(trademark) based systems (and the like) at a better price-to-performance ratio.
Another advantage of the present invention is that it makes performance acceleration based on run-time information rather than conventional operating system static (i.e., high, medium, and low) priority assignments. Further, the present invention allows users to achieve run-time tuning, which software vendors cannot address. The present invention operates in an environment where compile-time tuning and enhancements are not options for end-users of commercial software applications.
Yet another advantage of the present invention is that it makes performance acceleration completely transparent to the end user. This includes such tasks as recompiling, knowledge of processor type, or knowledge of system type.
Yet still another advantage of the present invention is that it makes performance acceleration completely independent of the end-user software application. This includes recompiling, tuning, and the like.
Yet still another advantage of the present invention is that it allows performance acceleration of stand-alone computer software applications, as well as client-server software applications executing in a distributed fashion over a network.
Further features and advantages of the invention as well as the structure and operation of various embodiments of the present invention are described in detail below with reference to the accompanying drawings.